package parts5.lesson64;

/**
 * 课时64 【第08个代码模型】ThreadLocal类
 */

/**
 * 本示例采用的就是不采用引用传递
 * 但是发现了一个问题，用户A和用户B设置的note只能生效一个
 * 造成此问题的原因：没有同步
 * 如果我们需要标记处每一个线程的具体对象信息，则需要使用ThreadLocal类
 *
 */
public class MyUtilDemo {
    public static void main(String[] args) throws Exception {
        new Thread(()->{
            Message msg=new Message();
            msg.setNote("我来添加点东东");
            MyUtil.message=msg;
            new MyUtilMessageConsumer().print();
        },"用户A").start();
        new Thread(()->{
            Message msg=new Message();
            msg.setNote("我不要东东");
            MyUtil.message=msg;
            new MyUtilMessageConsumer().print();
        },"用户B").start();
    }
}
